// Plugin.h: interface for the CPlugin class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PLUGIN_H__6CFD3C01_20C8_44C2_9127_500637C5DCE0__INCLUDED_)
#define AFX_PLUGIN_H__6CFD3C01_20C8_44C2_9127_500637C5DCE0__INCLUDED_

#include "MyDispatchDriver.h"	// Added by ClassView

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CPlugin  
{
public:
	BOOL IsEnabled();
	void Enable(BOOL bEnabled);
	BOOL m_bEnabled;
	CString GetProgID();
	CString GetFileName()
	{
		if(!this)
		{
			return "";
		}
		return m_sFileName;
	}
	BYTE	m_iBitmap;
	BYTE	m_fVirt;
	WORD	m_key;

	BOOL SupportsConfig();
	BOOL SupportsAbout();
	BOOL SupportsInit();

	void BeginConfig();
	void SaveConfig();
	void CancelConfig();

	CString GetDescription();
	BOOL ShowAbout();
	CString GetMenuDescription();
	BOOL GetMenuIcon(IPicture **ppPictureDisp);
	CString GetMenuName();
	CString GetName();
	void OnCommand();
	BOOL Load();
	CPlugin(LPCTSTR szFileName);
	~CPlugin();
protected:
	BOOL RegisterServer(LPCTSTR szFileName);
	CString m_sFileName;
	CMyDispatchDriver m_disp;
};

#endif // !defined(AFX_PLUGIN_H__6CFD3C01_20C8_44C2_9127_500637C5DCE0__INCLUDED_)
